/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ms.jasim.model.items.util;

import ms.jasim.model.ModelObject;
import ms.jasim.model.NamedModelObject;
import ms.jasim.model.items.*;
import ms.jasim.model.items.ActorItem;
import ms.jasim.model.items.GoalItem;
import ms.jasim.model.items.IntItem;
import ms.jasim.model.items.Item;
import ms.jasim.model.items.ItemList;
import ms.jasim.model.items.ItemsPackage;
import ms.jasim.model.items.TextItem;
import ms.utils.IModelObjectList;
import ms.utils.INamedItem;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see ms.jasim.model.items.ItemsPackage
 * @generated
 */
public class ItemsAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static ItemsPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ItemsAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = ItemsPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch that delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ItemsSwitch<Adapter> modelSwitch =
		new ItemsSwitch<Adapter>() {
			@Override
			public Adapter caseItemList(ItemList object) {
				return createItemListAdapter();
			}
			@Override
			public Adapter caseItem(Item object) {
				return createItemAdapter();
			}
			@Override
			public Adapter caseTextItem(TextItem object) {
				return createTextItemAdapter();
			}
			@Override
			public Adapter caseIntItem(IntItem object) {
				return createIntItemAdapter();
			}
			@Override
			public Adapter caseGoalItem(GoalItem object) {
				return createGoalItemAdapter();
			}
			@Override
			public Adapter caseActorItem(ActorItem object) {
				return createActorItemAdapter();
			}
			@Override
			public Adapter caseGoalListItem(GoalListItem object) {
				return createGoalListItemAdapter();
			}
			@Override
			public Adapter caseActorListItem(ActorListItem object) {
				return createActorListItemAdapter();
			}
			@Override
			public Adapter casePropertyList(PropertyList object) {
				return createPropertyListAdapter();
			}
			@Override
			public Adapter caseObjectProperty(ObjectProperty object) {
				return createObjectPropertyAdapter();
			}
			@Override
			public Adapter caseObjectPropertyList(ObjectPropertyList object) {
				return createObjectPropertyListAdapter();
			}
			@Override
			public Adapter casePropertyDescriptor(PropertyDescriptor object) {
				return createPropertyDescriptorAdapter();
			}
			@Override
			public Adapter casePropertyDescriptorList(PropertyDescriptorList object) {
				return createPropertyDescriptorListAdapter();
			}
			@Override
			public Adapter caseIObjectPropertyList(IModelObjectList<ObjectProperty> object) {
				return createIObjectPropertyListAdapter();
			}
			@Override
			public Adapter caseIPropertyDescriptorList(IModelObjectList<PropertyDescriptor> object) {
				return createIPropertyDescriptorListAdapter();
			}
			@Override
			public Adapter caseIItemList(IModelObjectList<Item> object) {
				return createIItemListAdapter();
			}
			@Override
			public Adapter caseModelObject(ModelObject object) {
				return createModelObjectAdapter();
			}
			@Override
			public Adapter caseINamedItem(INamedItem object) {
				return createINamedItemAdapter();
			}
			@Override
			public Adapter caseNamedModelObject(NamedModelObject object) {
				return createNamedModelObjectAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.ItemList <em>Item List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.ItemList
	 * @generated
	 */
	public Adapter createItemListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.Item <em>Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.Item
	 * @generated
	 */
	public Adapter createItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.TextItem <em>Text Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.TextItem
	 * @generated
	 */
	public Adapter createTextItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.IntItem <em>Int Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.IntItem
	 * @generated
	 */
	public Adapter createIntItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.GoalItem <em>Goal Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.GoalItem
	 * @generated
	 */
	public Adapter createGoalItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.ActorItem <em>Actor Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.ActorItem
	 * @generated
	 */
	public Adapter createActorItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.GoalListItem <em>Goal List Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.GoalListItem
	 * @generated
	 */
	public Adapter createGoalListItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.ActorListItem <em>Actor List Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.ActorListItem
	 * @generated
	 */
	public Adapter createActorListItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.PropertyList <em>Property List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.PropertyList
	 * @generated
	 */
	public Adapter createPropertyListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.ObjectProperty <em>Object Property</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.ObjectProperty
	 * @generated
	 */
	public Adapter createObjectPropertyAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.ObjectPropertyList <em>Object Property List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.ObjectPropertyList
	 * @generated
	 */
	public Adapter createObjectPropertyListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link IModelObjectList<ObjectProperty> <em>IObject Property List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see IModelObjectList<ObjectProperty>
	 * @generated
	 */
	public Adapter createIObjectPropertyListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.PropertyDescriptor <em>Property Descriptor</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.PropertyDescriptor
	 * @generated
	 */
	public Adapter createPropertyDescriptorAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.items.PropertyDescriptorList <em>Property Descriptor List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.items.PropertyDescriptorList
	 * @generated
	 */
	public Adapter createPropertyDescriptorListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link IModelObjectList<PropertyDescriptor> <em>IProperty Descriptor List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see IModelObjectList<PropertyDescriptor>
	 * @generated
	 */
	public Adapter createIPropertyDescriptorListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link IModelObjectList<Item> <em>IItem List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see IModelObjectList<Item>
	 * @generated
	 */
	public Adapter createIItemListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.ModelObject <em>Object</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.ModelObject
	 * @generated
	 */
	public Adapter createModelObjectAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.utils.INamedItem <em>INamed Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.utils.INamedItem
	 * @generated
	 */
	public Adapter createINamedItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.NamedModelObject <em>Named Model Object</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.NamedModelObject
	 * @generated
	 */
	public Adapter createNamedModelObjectAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //ItemsAdapterFactory
